module.exports = {
  // 代理配置
  //vue-cli3.0 里面的 vue.config.js做配置
  devServer: {
    port: '8080', //前端端口
    open: false, //启动后自动打开客户端
    disableHostCheck: true, //禁用主机检查<内网穿透测试使用>
    // cli3 代理是从指定的target后面开始匹配的，不是任意位置；配置pathRewrite可以做替换
    proxy: {
      '/api': {
        target: 'http://127.0.0.1:3000', //代理目标端口
        changeOrigin: true, //如果接口跨域，需要进行这个参数配置
        ws: false,
      },
      // 图片资源代理
      '/uploads': {
        target: 'http://127.0.0.1:3000', //代理目标端口
        changeOrigin: true, //如果接口跨域，需要进行这个参数配置
        ws: false,
      },
      '/brushStep': {
        target: 'https://bushu.faithxy.com/motion/api/motion/Xiaomi', //代理目标端口
        changeOrigin: true, //如果接口跨域，需要进行这个参数配置
        ws: false,
        pathRewrite: {
          '^/brushStep': '', //路径重写
        },
      },
    },
  },
  // 打包配置
  chainWebpack: config => {
    // 当前编译模式为项目发布模式
    config.when(process.env.NODE_ENV === 'production', config => {
      // 得到默认路口后，把默认的入口文件清空然后追加自己的打包入口文件
      config.entry('app').clear().add('./src/main-pro.js')
      // 打包期间不会把以下依赖包合并到输入的文件中，而是去Windows全局去查找直接使用该依赖包
      config.set('externals', {
        vue: 'Vue',
        'vue-router': 'VueRouter',
        axios: 'axios',
        // lodash: '_',
        // echarts: 'echarts',
        // 'vue-quill-editor': 'VueQuillEditor'
      })
      // 为html的htmlWebpackPlugin插件args添加新参数
      config.plugin('html').tap(args => {
        args[0].isProd = true
        return args
      })
    })
    // 当前编译模式为项目开发模式
    config.when(process.env.NODE_ENV === 'development', config => {
      config.entry('app').clear().add('./src/main-dev.js')
      config.plugin('html').tap(args => {
        args[0].isProd = false
        return args
      })
    })
  },
}
